package Visao;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import Controle.AlunoControle;
import Controle.ControleMovimentacao;
import Modelo.Aluno;
import Modelo.Funcionario;
import Modelo.Movimentacao;
import javax.swing.ImageIcon;

public class Presenca extends JFrame {

	private JPanel contentPane;
	private JTextField textFieldNome;
	private JTextField textFieldCurso;
	private JButton btnEntrou;
	private JButton btnSaiu;
	private Aluno aluno;
	private ControleMovimentacao controleMovi;
	private Movimentacao movimentacao;
	private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
	private AlunoControle controleAluno;
	private Funcionario funcionario;
	private ControleDeTelas telas; 
	private JPanel panel;
	private JLabel lblNewLabel;

	/**
	 * Launch the application.
	 */
	

	/**
	 * Create the frame.
	 */
	
	public void carregarAluno(Aluno aluno){
		this.aluno = aluno;
		textFieldCurso.setText(aluno.getCurso());
		textFieldNome.setText(aluno.getNome());
	}
	
	public void carregarFuncionario(Funcionario funcionario){
		this.funcionario = funcionario;
		textFieldCurso.setText(this.funcionario.getCargo());
		textFieldNome.setText(this.funcionario.getNome());
	}
	
	
	
	public Presenca() {
		telas = new ControleDeTelas();
		controleAluno = new AlunoControle();
		controleMovi = new ControleMovimentacao();
		movimentacao = new Movimentacao();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 451, 300);
		setLocationRelativeTo(null);
		contentPane = new JPanel();
		contentPane.setBackground(Color.WHITE);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		panel = new JPanel();
		panel.setBackground(new Color(0, 139, 139, 50));
		panel.setBounds(36, 25, 371, 209);
		contentPane.add(panel);
		panel.setLayout(null);
		
		JLabel lblControleDeEntrada = new JLabel("Controle de Entrada e Saida");
		lblControleDeEntrada.setBounds(10, 11, 233, 23);
		panel.add(lblControleDeEntrada);
		lblControleDeEntrada.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 15));
		
		JLabel lblNome = new JLabel("Nome");
		lblNome.setBounds(10, 68, 60, 14);
		panel.add(lblNome);
		lblNome.setFont(new Font("Tahoma", Font.BOLD, 15));
		
		textFieldNome = new JTextField();
		textFieldNome.setBounds(135, 67, 195, 20);
		panel.add(textFieldNome);
		textFieldNome.setColumns(10);
		
		JLabel lblCurso = new JLabel("Curso/Cargo");
		lblCurso.setBounds(10, 117, 127, 19);
		panel.add(lblCurso);
		lblCurso.setFont(new Font("Tahoma", Font.BOLD, 15));
		
		textFieldCurso = new JTextField();
		textFieldCurso.setBounds(135, 118, 195, 20);
		panel.add(textFieldCurso);
		textFieldCurso.setColumns(10);
		
		
		
		
		
		btnEntrou = new JButton("Entrada");
		btnEntrou.setBounds(135, 161, 91, 23);
		panel.add(btnEntrou);
		
		btnSaiu = new JButton("Saida");
		btnSaiu.setBounds(239, 161, 91, 23);
		panel.add(btnSaiu);
		
		lblNewLabel = new JLabel("New label");
		lblNewLabel.setIcon(new ImageIcon("H:\\workspace\\SupportWatchful\\Imagens\\i=magem lois.jpg"));
		lblNewLabel.setBounds(0, 0, 443, 273);
		contentPane.add(lblNewLabel);
		btnSaiu.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				List<Movimentacao> movi;
				if(aluno == null){
					 movi = controleMovi.buscarHorarioFuncionario(funcionario.getIdFuncionario());
				}else{
				 movi = controleMovi.buscarHorarioAluno(aluno.getIdAluno());
				}
				movimentacao = movi.get(movi.size()-1);
				movimentacao.setHorarioSaida(new Time(new Date().getTime()));
				movimentacao.setDiaSaida(new Date());
				
				
				
				
				controleMovi.salvar(movimentacao);
				JOptionPane.showMessageDialog(null, "Saida Registrada!!");
				telas.getInicio().setVisible(true);
				dispose();
			}
		});
		btnEntrou.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Movimentacao movimentacao = new Movimentacao();
				if(aluno != null){
					movimentacao.setAluno(aluno);
					funcionario = null;
				}
				if(funcionario != null){
					movimentacao.setFuncionario(funcionario);
					aluno = null;
				}
				movimentacao.setDiaEntrada(new Date());
				movimentacao.setHorarioEntrada(new Time(new Date().getTime()));
				
				
				controleMovi.salvar(movimentacao);
				JOptionPane.showMessageDialog(null, "Entrada Registrada!!");
				telas.getInicio().setVisible(true);
				dispose();
			}
		});
	}
}
